Интеграция адаптивного Bootstrap шаблона сайта в 1С-Битрикс по шагам - УРОК 1


Рамках данного урока мы создадим шаблон 1С-Битрикс и натянем на него базовую статическую html+css вёрстку, не реализуя ни одного динамического шаблона. В каждом последующем уроке мы будем постепенно забирать функционал из шаблона и интегрировать в компоненты.

В уроке не рассматривается процесс установки и настройки 1С-Битрикс. Данный вопрос хорошо описан в документации 1С-Битрикс.

Для реализации этого урока автор создал чистую пустую установку 1С-Битрикс без демо-контента. После создания администратора процесс установки был прерван.

ИСХОДНЫЕ КОДЫ HTML+CSS ВЁРСТКИ


Создание пустого шаблона 1С-Битрикс

В административном разделе выбираем:

Настройки → Настройки продукта → Сайты → Шаблоны Сайтов

нажимем кнопку "Добавить шаблон"

создаём 1й шаблон сайта

Заполняем:

  • Обязательно поле "ID" - он будет использоваться для вызова шаблона в настройках сайта, а так же станет названием папки с шаблоном (заполняем латинскими буквами и цифрами, рекомендуется без пробелов и спец-символов).
  • Рекомендуется поле "Название" - используется для выбора шаблона в списке. Лучше заполнить кратким уникальным текстом, позволяющим однозначно идентифицировать шаблон и то, где он используется если в системе предполагается наличие нескольких шаблонов.
  • По желанию поле "Описание" - выводится только на старнице редактирования шаблонов и в списке шаблонов. Используется для краткого описания технических особенностей шаблона для администратора.
  • Обязательно ставим метку "#WORK_AREA#" в поле "Внешний вид шаблона сайта"

создаём пустой шаблон сайта

Ждём кнопку "сохранить"

Наш пустой шаблон создан и располагается в папке /bitrix/templates/stylish/

Откроем созданный шаблон из списка шаблонов (нажав на название шаблона в списке) и перейдём в папку шаблона (нажав на путь к папке напротив поля ID):

перейдём в папку шаблона (нажав на путь к папке напротив поля ID)

Как мы видим несмотря на то, что мы создали абсолютно пустой шаблон в папке присутствует несколько файлов:

папка с пустым шаблоном

В том числе footer.php и header.php (пока пустые), которые мы упоминали в 1 уроке.

В дальнейшем мы опишем назначение каждого из файлов и поработаем со всеми из них, а так же дополним структуру.


Интегрируем статическую html+css вёрстку

Из исходного шаблона берём 3 папки с файлами:

  • css
  • img
  • js

и копируем в папку /bitrix/templates/stylish/

Пока не будем обращать внимания на тот факт, что в нашем шаблоне папка img содержит не только изображения из шаблона, но и контент! На взгляд автора данной статьи это ошибка верстальщика, с которой нам ещё предстоит разобраться.

Настал этап, когда мы приступим к добавлению кода HTML разметки шаблона. Для этого возьмём макет главной страниц index.html из исходного кода шаблона. 

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Home</title>
    <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="Your description">
    <meta name="keywords" content="Your keywords">
    <meta name="author" content="Your name">
    <link rel="icon" href="img/favicon.ico" type="image/x-icon">
    <link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon" />
    <link rel="stylesheet" href="css/bootstrap.css" type="text/css" media="screen">
    <link rel="stylesheet" href="css/responsive.css" type="text/css" media="screen">
    <link rel="stylesheet" href="css/camera.css" type="text/css" media="screen"> 
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
   
<script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/camera.js"></script>
    <script src="js/jquery.ui.totop.js" type="text/javascript"></script>
<script>
      $(document).ready(function(){   
              jQuery('.camera_wrap').camera();
        });    
</script>
<!--[if lt IE 8]>
 
http://www.microsoft.com/windows/internet-explorer/default.aspx?ocid=ie6_countdown_bannercode">http://www.theie6countdown.com/img/upgrade.jpg"border="0"alt=""/>
 
  <![endif]-->
  
  <!--[if (gt IE 9)|!(IE)]><!-->
  <script type="text/javascript" src="js/jquery.mobile.customized.min.js"></script>
  <!--<![endif]-->
  <!--[if lt IE 9]>
   
   
   
   
    <link rel="stylesheet" href="css/docs.css" type="text/css" media="screen">
    <link rel="stylesheet" href="css/ie.css" type="text/css" media="screen">
  <![endif]-->
</head>

<body>
<!--==============================header=================================-->
<header class="p0">
    <div class="container">
    <div class="row">
        <div class="span12">
            <div class="header-block clearfix">
                    <div class="clearfix header-block-pad">
                        <h1 class="brand"><a href="index.html"><img src="img/logo.png" alt=""></a><span>Fashion brand</span></h1>
                        <form id="search-form" action="search.php" method="GET" accept-charset="utf-8" class="navbar-form" >
                            <input type="text" name="s" onBlur="if(this.value=='') this.value=''" onFocus="if(this.value =='' ) this.value=''"  >
                            <a href="#" onClick="document.getElementById('search-form').submit()"></a>
                        </form>
Call Us Toll Free:  +1 234 567 89 90
E-mail:
company@demolink.org                        Call Us Toll Free:  +1 234 567 89 90
E-mail: company@demolink.org>
                    </div>
                    <div class="navbar navbar_ clearfix">
                        <div class="navbar-inner navbar-inner_">
                            <div class="container">
                                <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse_">MENU</a>                                                   
                                <div class="nav-collapse nav-collapse_ collapse">
                                    <ul class="nav sf-menu">
                                      <li class="active li-first"><a href="index.html"><em class="hidden-phone"></em><span class="visible-phone">Home</span></a></li>
                                      <li class="sub-menu"><a href="index-1.html">about</a>
                                        <ul>
                                          <li><a href="#">Welcome Message</a></li>
                                          <li class="sub-menu"><a href="#">Company Profile</a>
                                            <ul>
                                              <li><a href="#">Our Capabilities</a></li>
                                              <li><a href="#">Advantages</a></li>
                                              <li><a href="#">Work Team</a></li>
                                              <li><a href="#">Partnership</a></li>
                                              <li><a href="#">Support</a></li>
                                            </ul>
                                          </li>
                                          <li><a href="#">Our History</a></li>
                                          <li><a href="#">Testimonials</a></li>
                                        </ul>
                                      </li>
                                      <li><a href="index-2.html">services</a></li>
                                      <li><a href="index-3.html">collections</a></li>
                                      <li><a href="index-4.html">styles</a></li>
                                      <li><a href="index-5.html">contacts</a></li>
                                    </ul>
                                </div>
                                <ul class="social-icons">
                                    <li><a href="#"><img src="img/icon-1.png" alt=""></a></li>
                                    <li><a href="#"><img src="img/icon-2.png" alt=""></a></li>
                                    <li><a href="#"><img src="img/icon-3.png" alt=""></a></li>
                                    <li><a href="#"><img src="img/icon-4.png" alt=""></a></li>
                                </ul>
                            </div>
                        </div>
                     </div>   
                </div>
            </div>
         </div>   
    </div>
    <div class="slider">
    <div class="camera_wrap">
        <div data-src="img/slide1.jpg"></div>
        <div data-src="img/slide2.jpg"></div>
        <div data-src="img/slide3.jpg"></div>
    </div>
</div>
</header>

<section id="content" class="main-content">
<div class="sub-content">
  <div class="container">
    <div class="row">
      <div class="span12">        
        <ul class="thumbnails">
          <li class="span3">
            <div class="thumbnail">
              <div class="caption">
              <img src="img/img-1.png" alt="">
                <h5>Most</h5>
                <h3>popular</h3>
              </div>  
              <div class="thumbnail-pad">
                  <p>Praesent vestibulum molestie lacus. Aenean noy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. </p>
                  <a href="#" class="btn btn_">more info</a>
              </div>
            </div>
          </li>
          <li class="span3">
            <div class="thumbnail">
              <div class="caption">
              <img src="img/img-2.png" alt="">
                <h5>Beauty</h5>
                <h3>Gifts</h3>
              </div>  
              <div class="thumbnail-pad">
                  <p>Praesent vestibulum molestie lacus. Aenean my hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. </p>
                  <a href="#" class="btn btn_">more info</a>
              </div>
            </div>
          </li>
          <li class="span3">
            <div class="thumbnail">
              <div class="caption">
              <img src="img/img-3.png" alt="">
                <h5>Attention</h5>
                <h3>to Detail</h3>
              </div>  
              <div class="thumbnail-pad">
                  <p>Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suipit varius mi. Cum sociis natoque penatibus et.</p>
                  <a href="#" class="btn btn_">more info</a>
              </div>
            </div>
          </li>
          <li class="span3">
            <div class="thumbnail">
              <div class="caption">
              <img src="img/img-4.png" alt="">
                <h5>Award-Winning</h5>
                <h3>Fragrances</h3>
              </div>
              <div class="thumbnail-pad">  
                  <p>Nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis.</p>
                  <a href="#" class="btn btn_">more info</a>
              </div>
            </div>
          </li>
        </ul>
      </div>
    </div>
    <div class="row">
    <div class="span8">
        <div class="clearfix cols-1">
                <div class="span4 left-0">
                    <h4 class="indent-2">Welcome</h4>
                    <p class="lead">Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. </p>
                    <figure class="img-indent"><img src="img/page1-img1.jpg" alt="" class="img-radius"></figure>
                    Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla dui. Fusce feugiat malesuada odio. Morbi nunc odio, gravida at, cursus nec, luctus a, lorem. 
                </div>
                <div class="span4">
                    <h4 class="indent-2">What We Do</h4>
                    <p class="lead">Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. </p>
                    <figure class="img-indent"><img src="img/page1-img2.jpg" alt="" class="img-radius"></figure>
                    Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla dui. Fusce feugiat malesuada odio. Morbi nunc odio, gravida at, cursus nec, luctus a, lorem. 
                </div>
            </div>
            <h4 class="indent-1">our Capabilities:</h4>
            <p class="lead">Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturien.</p>
            <div class="lists">
            <div class="span4 left-0">
                    <ul class="list">
                        <li><a href="#">Praesent vestibulum molestie lacus aenean</a></li>
                        <li><a href="#">nonummy hendrerit mauris</a></li>
                        <li><a href="#">Phasellus porta fusce suscipit varius mi</a></li>
                        <li><a href="#">Cum sociis natoque penatibus et magnis dis</a></li>
                    </ul>
                </div>
                <div class="span4">
                    <ul class="list">
                        <li><a href="#">Praesent vestibulum molestie lacus aenean</a></li>
                        <li><a href="#">nonummy hendrerit mauris</a></li>
                        <li><a href="#">Phasellus porta fusce suscipit varius mi</a></li>
                        <li><a href="#">Cum sociis natoque penatibus et magnis dis</a></li>
                    </ul>
                </div>
            </div>
            <a href="#" class="link">More Info</a>
        </div>    
        <div class="span4">
        <h4 class="indent-2">Latest News:</h4>
            <ul class="list-news">
            <li>
                <a href="#" class="btn btn_">Apr 21, 2012</a>
                    <p class="text-info">Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.</p>
                    Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. <a href="#" class="underline">>></a>
                </li>
                <li>
                <a href="#" class="btn btn_">Apr 21, 2012</a>
                    <p class="text-info">Aenean nonummy hendrerit mauris</p>
                    Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes.  <a href="#" class="underline">>></a>
                </li>
                <li>
                <a href="#" class="btn btn_">Apr 21, 2012</a>
                    <p class="text-info">Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturien.</p>
                    Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes.  <a href="#" class="underline">>></a>
                </li>
            </ul>
            <h4 class="indent-1">testimonials:</h4>
<p class="p1">Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi, nascetur ridiculus mus. Nulla dui. Fusce feugiat malesuada.”</p>
            <span class="clr"><strong>Mark Priston</strong>, <a href="#" class="link-2">demolink.org</a></span>
        </div>
    </div>        
  </div>
</div>  
</section>
<footer>
   <div class="container">
    <div class="row">
      <div class="span4 float2">
        <form id="newsletter" method="post" >
            <label>Newsletter</label>
            <div class="clearfix">
                <input type="text" onFocus="if(this.value =='Enter e-mail here' ) this.value=''" onBlur="if(this.value=='') this.value='Enter e-mail here'" value="Enter e-mail here" >
                <a href="#" onClick="document.getElementById('newsletter').submit()" class="btn btn_">subscribe</a>
            </div>
        </form>
    </div>
    <div class="span8 float">
      <ul class="footer-menu">
        <li><a href="index.html" class="current">Home Page</a>|</li>
            <li><a href="index-1.html">about</a>|</li>
            <li><a href="index-2.html">Services</a>|</li>
            <li><a href="index-3.html">collections</a>|</li>
            <li><a href="index-4.html">styles</a>|</li>
            <li><a href="index-5.html">Contacts</a></li>
        </ul>
      Stylish   ©  2013  |   Разработан">http://кофедизайн.рф/">Разработано с удовольствием
      </div>
    </div>
   </div>
</footer>
<script type="text/javascript" src="js/bootstrap.js"></script>
</body>
</html>

Цветами отмечены участки кода, которые относятся к разным блокам в соответствии с разметкой, проведённой в УРОКЕ 0:

  • Красный - header.php (или в шаблон сайта ВЫШЕ #WORK_AREA#
  • Жёлтый - footer.php (или в шаблон сайта НИЖЕ #WORKAREA#)
  • Зелёный - тело страницы

Мы рекомендуем не брать код напрямую из урока, а самостоятельно найти границы блоков (например использую редактор кода notepade++ с подсветкой синтаксиса). Во-первых, это важная часть обучения процессу интеграции дизайна - правильно определить где заканчивается какой блок. А во-вторых, здесь могла быть сбита табуляция, так что код может быть менее читабелен, чем в оригинале.

Как можно заметить, мнение автора статьи о разбитии вёрстки на рабочую область подвал и шапку не совпадает с мнением автора шаблона. 

Образцы созданных файлов:

Теперь применим наш статический шаблон к имеющемуся сайта (состоящему пока из 1 страницы), для этого в административном разделе выбираем:

Настройки → Настройки продукта → Сайты → Сайты

Нажмём на ID интересующего нас сайта (в данном случае он один, поскольку мы используем чистую систему, однако у вас может быть список):

Настройки сайта

На странице редактирования настроек сайта нас интересует самый нижний блок - "Шаблоны". Здесь мы выберем шаблон и установим условия для его использования на сайте. Поскольку у нас всего 1 шаблон и он используется для всего сайта, то мы не будем использовать условия и оставим индекс сортировки по-умолчанию:

Выбор шаблона в настройках сайта

Если вы интегрируете шаблон на уже работающем сайте (или делаете не 1й шаблон в рамках проекта), то имеет смысл ставить для него низкий индекс сортировки и/или правило, применяющее шаблон только к конкретной папке, чтобы ваше правило с не до конца готовым шаблоном не сказалось на других разделах.

Если сейчас мы посмотрим страницу в публичной части, то увидим, что она представляет из себя текст без разметки, стилей и картинок, поскольку пути к ним в статической вёрстке отличаются от тех, что должны быть в структуре 1С-Битрикс. Для того, чтобы это исправить необходимо:

  • Добавить константу <?=SITE_TEMPLATE_PATH?> к пути всех статических файлов (в частности изображений), которая определяет путь к шаблону сайта относительно пути сайта. 

    Например, заменив <img src="img/img-4.png" alt=""> на <img src="<?=SITE_TEMPLATE_PATH?>/img/img-4.png" alt="">

    Пренебрежём пока тем, что некоторые картинки, такие как баннеры в слайдере следует хранить не в шаблоне - мы будем облегчать его постепенно, перенося картинки в шаблоны компонентов или контент по мере необходимости (в идеале в общей папке в шаблоне страницы не должно остаться картинок не универсального значения, чтобы в дальнейшем было проще работать).

  • Добавим подключение пролога и языковых файлов в header.php начале шаблона (1-й строкой):

    <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
    <?
    IncludeTemplateLangFile(__FILE__);
    ?> 
  • Добавим языковых файлов в footer.php (1-й строкой в файле или сразу после #WORK_AREA# в шаблоне):

    <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    IncludeTemplateLangFile(__FILE__);
    ?>
  • Вместо статического значения <html lang="en"> укажем константу, определяющую язык сайта в 1С-Битрикс:

    <html lang="<?=LANGUAGE_ID;?>-<?=strtoupper(LANGUAGE_ID);?>">
  • Внутри тега <head> вместо <title>Home</title> динамически генерирующийся заголовок:

    <title><?$APPLICATION->ShowTitle()?></title>
  • Добавим служебную функцию <?$APPLICATION->ShowHead();?> (она заменит нам множество других статических вызовов.

  • Удалим <meta charset="utf-8"> - реальную информацию о кодировке (из настроек сайта) на страницу выведет предыдущая функция.

  • Установим динамическое подключение стилей с помощью функции SetAdditionalCSS (это нужно для того, чтобы одни и те же стили не подключались дважды, а так же для того, чтобы 1С-Битрикс проверял изменение в стилях и сообщал об этом браузеру пользователя при повторном заходе на сайт) - $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/НАЗВАНИЕ_СТИЛЯ.css');. Сгруппируем все стили вместе с ShowHead для облегчения процесса редактирования в будущем:

    <?
    $APPLICATION->ShowHead();

    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/bootstrap.css');
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/responsive.css');
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/camera.css');
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/style.css');
    $APPLICATION->SetAdditionalCSS('http://fonts.googleapis.com/css?family=Open+Sans:400,600,700');
    $APPLICATION->SetAdditionalCSS('http://fonts.googleapis.com/css?family=Open+Sans:400');
    $APPLICATION->SetAdditionalCSS('http://fonts.googleapis.com/css?family=Open+Sans:600');
    $APPLICATION->SetAdditionalCSS('http://fonts.googleapis.com/css?family=Open+Sans:700');
    ?>

    Поскольку данная функция не поддерживает параметр media, перенесём и его значение из старых статических ссылок в текст CSS файлов.

    Например, для /css/bootstrap.css первой строкой добавим:

    @media screen

  • Установим динамическое подключение JS библиотек аналогично стилям (обратим внимание читателя, что проблема дублирования подключения библиотек JS важнее, поскольку может приводить к ошибкам работы функционала). Воспользуемся функцией AddHeadScript - $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/НАЗВАНИЕ_БИБЛИОТЕКИ.js");. Сгруппируем их так же вместе с CSS и ShowHead:

    <?
    $APPLICATION->ShowHead();

    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/bootstrap.css');
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/responsive.css');
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/camera.css');
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/style.css');
    $APPLICATION->SetAdditionalCSS('http://fonts.googleapis.com/css?family=Open+Sans:400,600,700');
    $APPLICATION->SetAdditionalCSS('http://fonts.googleapis.com/css?family=Open+Sans:400');
    $APPLICATION->SetAdditionalCSS('http://fonts.googleapis.com/css?family=Open+Sans:600');
    $APPLICATION->SetAdditionalCSS('http://fonts.googleapis.com/css?family=Open+Sans:700');

    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/jquery.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/jquery.easing.1.3.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/camera.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/jquery.ui.totop.js");
    ?>

    ВАЖНО. Мы оставили несколько библиотек подключенными по обычному сценарию.

    JS, подключаемые для устаревших браузеров (поскольку для них стоит условие подключения:

    <!--[if lt IE 8]>

    <![endif]-->

    <!--[if (gt IE 9)|!(IE)]><!-->
    <script type="text/javascript" src="<?=SITE_TEMPLATE_PATH?>/js/jquery.mobile.customized.min.js"></script>
    <!--<![endif]-->
    <!--[if lt IE 9]>

    <link rel="stylesheet" href="<?=SITE_TEMPLATE_PATH?>/css/docs.css" type="text/css" media="screen">
    <link rel="stylesheet" href="<?=SITE_TEMPLATE_PATH?>/css/ie.css" type="text/css" media="screen">
    <![endif]-->

    JS, подключаемые в конце страницы, поскольку эти библиотеки должны подключаться после сборки всей страницы, а не в шапке, как все остальные:

    <script type="text/javascript" src="<?=SITE_TEMPLATE_PATH?>/js/bootstrap.js"></script>

    Так же мы добавили подключение ещё одного JS, которого раньше не было в HTML коде:

    <script type="text/javascript" src="<?=SITE_TEMPLATE_PATH?>/js/superfish.js"></script>

    Это библиотека, отвечающая за раскрытие выпадающего меню. Она вызывается в bootstrap.js, однако автор вёрстки сделал её подключение зависящим от местонахождения страницы, что приводит к ошибке в случае динамического шаблона (как у нас). Поэтому мы вынесли подключение в шаблон.

    Важно не забыть добавить при их подключении константу <?=SITE_TEMPLATE_PATH?>, как и для картинок.

  • Добавляем константу <?$APPLICATION->ShowPanel();?> после открытия <body> для вывода панели инструментов в публичной части сайта (для пользователей обладающих соответствующим административным доступом).

  • Удаляем строки:

    <meta name="description" content="Your description">
    <meta name="keywords" content="Your keywords">

    Их динамические значения уже выводятся с помощью $APPLICATION->ShowHead();

  • Удаляем <meta name="author" content="Your name"> - в будущих уроках мы реализуем её вывод программно.

  • Опционально размещаем файл screen.gif в корне шаблона - он будет использоваться для иллюстрации шаблона в административном разделе и его наличие не обязательно. Файл может быть размещён в натуральную величину - для списка система автоматически сгенерирует миниатюру.


В заключении урока 1

Получившийся статический шаблон 1С-Битрикс и статичную же страницу Index.php для корня сайта вы можете скачать в репозитории на GitHub. На этом урок 1 закончен - мы получили полноценный (хотя и статичный) шаблон для 1С-Битрикс на основе HTML шаблона BootStrap. Теперь на его основе можно создать сайт.

В последующих уроках мы последовательно разберём перевод статичного контента данного шаблона в формат компонентов 1С-Битрикс, а так же частично переработаем структуру стилей для более удобной работы редакторов.



Интеграция адаптивного Bootstrap шаблона сайта в 1С-Битрикс по шагам - УРОК 1

<p style="text-align: justify;">Рамках данного урока мы создадим шаблон 1С-Битрикс и натянем на него базовую статическую html+css вёрстку, не реализуя ни одного динамического шаблона. В каждом последующем уроке мы будем постепенно забирать функционал из шаблона и интегрировать в компоненты.</p> <p style="text-align: justify;"><b>В уроке не рассматривается процесс установки и настройки 1С-Битрикс.</b> Данный вопрос хорошо описан в документации 1С-Битрикс.</p> <p style="text-align: justify;">Для реализации этого урока автор создал чистую пустую установку 1С-Битрикс без демо-контента. После создания администратора процесс установки был прерван.</p> <p style="text-align: justify;"><a href="/upload/medialibrary/ba9/ba920fe0e44d7b1d774a42b45fa0bb64.rar" title="исходная HTML+CSS Вёрстка шаблона">ИСХОДНЫЕ КОДЫ HTML+CSS ВЁРСТКИ</a></p> <p style="text-align: justify;"> <br> </p> <h2>Создание пустого шаблона 1С-Битрикс</h2> <p style="text-align: justify;">В административном разделе выбираем:</p> <p style="text-align: justify;">Настройки → Настройки продукта → Сайты → Шаблоны Сайтов</p> <p style="text-align: justify;">нажимем кнопку "Добавить шаблон"</p> <p style="text-align: justify;"><a href="/upload/medialibrary/034/0340410826e5b0fe3f29c3edabcf3d1e.PNG" target="_blank"><img title="создаём 1й шаблон сайта" src="/upload/medialibrary/034/0340410826e5b0fe3f29c3edabcf3d1e.PNG" alt="создаём 1й шаблон сайта" border="0" height="523" hspace="5" vspace="5" width="700"></a></p> <p style="text-align: justify;">Заполняем:</p> <ul> <li style="text-align: justify;"><b>Обязательно</b> поле "ID" - он будет использоваться для вызова шаблона в настройках сайта, а так же станет названием папки с шаблоном (заполняем латинскими буквами и цифрами, рекомендуется без пробелов и спец-символов).</li> <li style="text-align: justify;"><b>Рекомендуется</b> поле "Название" - используется для выбора шаблона в списке. Лучше заполнить кратким уникальным текстом, позволяющим однозначно идентифицировать шаблон и то, где он используется если в системе предполагается наличие нескольких шаблонов.</li> <li style="text-align: justify;"><b>По желанию</b> поле "Описание" - выводится только на старнице редактирования шаблонов и в списке шаблонов. Используется для краткого описания технических особенностей шаблона для администратора.</li> <li style="text-align: justify;"><b>Обязательно</b> ставим метку "#WORK_AREA#" в поле "Внешний вид шаблона сайта"</li> </ul> <p></p> <p style="text-align: justify;"><a href="/upload/medialibrary/a89/a8974c00873de7a21c40fce7cd72de43.PNG" target="_blank"><img title="создаём пустой шаблон сайта" src="/upload/medialibrary/a89/a8974c00873de7a21c40fce7cd72de43.PNG" alt="создаём пустой шаблон сайта" border="0" height="490" hspace="5" vspace="5" width="700"></a></p> <p style="text-align: justify;">Ждём кнопку "сохранить" </p> <p style="text-align: justify;">Наш пустой шаблон создан и располагается в папке /bitrix/templates/stylish/</p> <p style="text-align: justify;">Откроем созданный шаблон из списка шаблонов (нажав на название шаблона в списке) и перейдём в папку шаблона (нажав на путь к папке напротив поля ID):</p> <p style="text-align: justify;"><a href="/upload/medialibrary/6ac/6ac0e7da0361140695823af5f532c06b.PNG" target="_blank"><img title="перейдём в папку шаблона (нажав на путь к папке напротив поля ID)" src="/upload/medialibrary/6ac/6ac0e7da0361140695823af5f532c06b.PNG" alt="перейдём в папку шаблона (нажав на путь к папке напротив поля ID)" border="0" height="525" hspace="5" vspace="5" width="700"></a></p> <p style="text-align: justify;">Как мы видим несмотря на то, что мы создали абсолютно пустой шаблон в папке присутствует несколько файлов:</p> <p style="text-align: justify;"><a href="/upload/medialibrary/f97/f9775c4cbf23f7428e219584521eea4a.PNG" target="_blank"><img title="папка с пустым шаблоном" src="/upload/medialibrary/f97/f9775c4cbf23f7428e219584521eea4a.PNG" alt="папка с пустым шаблоном" border="0" hspace="5" vspace="5" width="700"></a></p> <p style="text-align: justify;">В том числе footer.php и header.php (пока пустые), которые мы упоминали в 1 уроке.</p> <p style="text-align: justify;">В дальнейшем мы опишем назначение каждого из файлов и поработаем со всеми из них, а так же дополним структуру.</p> <p style="text-align: justify;"> <br> </p> <h2>Интегрируем статическую html+css вёрстку</h2> <p style="text-align: justify;">Из исходного шаблона берём 3 папки с файлами: </p> <p style="text-align: justify;"> </p> <ul> <li>css</li> <li>img</li> <li>js</li> </ul> <p></p> <p style="text-align: justify;">и копируем в папку /bitrix/templates/stylish/</p> <p style="text-align: justify;"><i>Пока не будем обращать внимания на тот факт, что в нашем шаблоне папка img содержит не только изображения из шаблона, но и контент! На взгляд автора данной статьи это ошибка верстальщика, с которой нам ещё предстоит разобраться.</i></p> <p style="text-align: justify;">Настал этап, когда мы приступим к добавлению кода HTML разметки шаблона. Для этого возьмём макет главной страниц index.html из исходного кода шаблона. </p> <div class="layer" style="overflow: scroll; width: 700px; height: 350px; padding: 5px; border: 1px solid black;"> <div> <div> <div> <div><span style="background-color: #ff0000;">&lt;!DOCTYPE html&gt;</span></div> <div><span style="background-color: #ff0000;">&lt;html lang="en"&gt;</span></div> <div><span style="background-color: #ff0000;">&lt;head&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;title&gt;Home&lt;/title&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;meta charset="utf-8"&gt;</span></div> <div><span style="background-color: #ff0000;"><span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;meta name="description" content="Your description"&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;meta name="keywords" content="Your keywords"&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;meta name="author" content="Your name"&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;link rel="icon" href="img/favicon.ico" type="image/x-icon"&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon" /&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;link rel="stylesheet" href="css/bootstrap.css" type="text/css" media="screen"&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;link rel="stylesheet" href="css/responsive.css" type="text/css" media="screen"&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;link rel="stylesheet" href="css/camera.css" type="text/css" media="screen"&gt; </span></div> <div><span style="background-color: #ff0000;">    &lt;link rel="stylesheet" href="css/style.css" type="text/css" media="screen"&gt;</span></div> <div><span style="background-color: #ff0000;">    </span></div> <div><span style="background-color: #ff0000;"><span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;script type="text/javascript" src="js/jquery.js"&gt;&lt;/script&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;script type="text/javascript" src="js/jquery.easing.1.3.js"&gt;&lt;/script&gt;</span></div> <div><span style="background-color: #ff0000;"><span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;script type="text/javascript" src="js/camera.js"&gt;&lt;/script&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;script src="js/jquery.ui.totop.js" type="text/javascript"&gt;&lt;/script&gt;</span></div> <div><span style="background-color: #ff0000;"><span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;script&gt;</span></div> <div><span style="background-color: #ff0000;">      $(document).ready(function(){   </span></div> <div><span style="background-color: #ff0000;">              jQuery('.camera_wrap').camera();</span></div> <div><span style="background-color: #ff0000;">        });    </span></div> <div><span style="background-color: #ff0000;"><span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;/script&gt;<span class="Apple-tab-span" style="white-space: pre;"> </span></span></div> <div><span style="background-color: #ff0000;"><span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;!--[if lt IE 8]&gt;</span></div> <div><span style="background-color: #ff0000;">  <span class="Apple-tab-span" style="white-space: pre;"> </span><div style="text-align:center"><a href="<a href=" http:="" www.microsoft.com="" windows="" internet-explorer="">http://www.microsoft.com/windows/internet-explorer/default.aspx?ocid=ie6_countdown_bannercode"</a>&gt;<img http:="" www.theie6countdown.com="" img="" alt="" src="<a href=">http://www.theie6countdown.com/img/upgrade.jpg"border="0"alt=""/&gt;</div>  </span></div> <div><span style="background-color: #ff0000;"> <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;![endif]--&gt;</span></div> <div><span style="background-color: #ff0000;">  </span></div> <div><span style="background-color: #ff0000;">  &lt;!--[if (gt IE 9)|!(IE)]&gt;&lt;!--&gt;</span></div> <div><span style="background-color: #ff0000;">  &lt;script type="text/javascript" src="js/jquery.mobile.customized.min.js"&gt;&lt;/script&gt;</span></div> <div><span style="background-color: #ff0000;">  &lt;!--&lt;![endif]--&gt;</span></div> <div><span style="background-color: #ff0000;">  <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;!--[if lt IE 9]&gt;</span></div> <div><span style="background-color: #ff0000;">    </span></div> <div><span style="background-color: #ff0000;">    </span></div> <div><span style="background-color: #ff0000;">    </span></div> <div><span style="background-color: #ff0000;">    </span></div> <div><span style="background-color: #ff0000;">    &lt;link rel="stylesheet" href="css/docs.css" type="text/css" media="screen"&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;link rel="stylesheet" href="css/ie.css" type="text/css" media="screen"&gt;</span></div> <div><span style="background-color: #ff0000;">  &lt;![endif]--&gt;</span></div> <div><span style="background-color: #ff0000;">&lt;/head&gt;</span></div> <div><span style="background-color: #ff0000;"> <br> </span></div> <div><span style="background-color: #ff0000;">&lt;body&gt;</span></div> <div><span style="background-color: #ff0000;">&lt;!--==============================header=================================--&gt;</span></div> <div><span style="background-color: #ff0000;">&lt;header class="p0"&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;div class="container"&gt;</span></div> <div><span style="background-color: #ff0000;">    <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;div class="row"&gt;</span></div> <div><span style="background-color: #ff0000;">        <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;div class="span12"&gt;</span></div> <div><span style="background-color: #ff0000;">            <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;div class="header-block clearfix"&gt;</span></div> <div><span style="background-color: #ff0000;">                    &lt;div class="clearfix header-block-pad"&gt;</span></div> <div><span style="background-color: #ff0000;">                        &lt;h1 class="brand"&gt;&lt;a href="index.html"&gt;&lt;img src="img/logo.png" alt=""&gt;&lt;/a&gt;&lt;span&gt;Fashion brand&lt;/span&gt;&lt;/h1&gt;</span></div> <div><span style="background-color: #ff0000;">                        &lt;form id="search-form" action="search.php" method="GET" accept-charset="utf-8" class="navbar-form" &gt;</span></div> <div><span style="background-color: #ff0000;">                            &lt;input type="text" name="s" onBlur="if(this.value=='') this.value=''" onFocus="if(this.value =='' ) this.value=''"  &gt;</span></div> <div><span style="background-color: #ff0000;">                            &lt;a href="#" onClick="document.getElementById('search-form').submit()"&gt;&lt;/a&gt;</span></div> <div><span style="background-color: #ff0000;">                        &lt;/form&gt;</span></div> <div><span style="background-color: #ff0000;"><a href="mailto:                        <span class=">Call Us Toll Free:  +1 234 567 89 90<br>E-mail: </a><a href="#">company@demolink.org</a>                        <span class="contacts">Call Us Toll Free:  +1 234 567 89 90<br>E-mail: <a href="#">company@demolink.org</a>&gt;</span></span></div> <div><span style="background-color: #ff0000;">                    &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">                    &lt;div class="navbar navbar_ clearfix"&gt;</span></div> <div><span style="background-color: #ff0000;">                        &lt;div class="navbar-inner navbar-inner_"&gt;</span></div> <div><span style="background-color: #ff0000;">                            &lt;div class="container"&gt;</span></div> <div><span style="background-color: #ff0000;">                                &lt;a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse_"&gt;MENU&lt;/a&gt;                                                   </span></div> <div><span style="background-color: #ff0000;">                                &lt;div class="nav-collapse nav-collapse_ collapse"&gt;</span></div> <div><span style="background-color: #ff0000;">                                    &lt;ul class="nav sf-menu"&gt;</span></div> <div><span style="background-color: #ff0000;">                                      &lt;li class="active li-first"&gt;&lt;a href="index.html"&gt;&lt;em class="hidden-phone"&gt;&lt;/em&gt;&lt;span class="visible-phone"&gt;Home&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                      &lt;li class="sub-menu"&gt;&lt;a href="index-1.html"&gt;about&lt;/a&gt;</span></div> <div><span style="background-color: #ff0000;">                                        &lt;ul&gt;</span></div> <div><span style="background-color: #ff0000;">                                          &lt;li&gt;&lt;a href="#"&gt;Welcome Message&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                          &lt;li class="sub-menu"&gt;&lt;a href="#"&gt;Company Profile&lt;/a&gt;</span></div> <div><span style="background-color: #ff0000;">                                            &lt;ul&gt;</span></div> <div><span style="background-color: #ff0000;">                                              &lt;li&gt;&lt;a href="#"&gt;Our Capabilities&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                              &lt;li&gt;&lt;a href="#"&gt;Advantages&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                              &lt;li&gt;&lt;a href="#"&gt;Work Team&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                              &lt;li&gt;&lt;a href="#"&gt;Partnership&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                              &lt;li&gt;&lt;a href="#"&gt;Support&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                            &lt;/ul&gt;</span></div> <div><span style="background-color: #ff0000;">                                          &lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                          &lt;li&gt;&lt;a href="#"&gt;Our History&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                          &lt;li&gt;&lt;a href="#"&gt;Testimonials&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                        &lt;/ul&gt;</span></div> <div><span style="background-color: #ff0000;">                                      &lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                      &lt;li&gt;&lt;a href="index-2.html"&gt;services&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                      &lt;li&gt;&lt;a href="index-3.html"&gt;collections&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                      &lt;li&gt;&lt;a href="index-4.html"&gt;styles&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                      &lt;li&gt;&lt;a href="index-5.html"&gt;contacts&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                    &lt;/ul&gt;</span></div> <div><span style="background-color: #ff0000;">                                &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">                                &lt;ul class="social-icons"&gt;</span></div> <div><span style="background-color: #ff0000;">                                    &lt;li&gt;&lt;a href="#"&gt;&lt;img src="img/icon-1.png" alt=""&gt;&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                    &lt;li&gt;&lt;a href="#"&gt;&lt;img src="img/icon-2.png" alt=""&gt;&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                    &lt;li&gt;&lt;a href="#"&gt;&lt;img src="img/icon-3.png" alt=""&gt;&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                    &lt;li&gt;&lt;a href="#"&gt;&lt;img src="img/icon-4.png" alt=""&gt;&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">                                &lt;/ul&gt;</span></div> <div><span style="background-color: #ff0000;">                            &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">                        &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">                     &lt;/div&gt;   </span></div> <div><span style="background-color: #ff0000;">                &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">            &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">         &lt;/div&gt;   </span></div> <div><span style="background-color: #ff0000;">    &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;div class="slider"&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;div class="camera_wrap"&gt;</span></div> <div><span style="background-color: #ff0000;">        &lt;div data-src="img/slide1.jpg"&gt;&lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">        &lt;div data-src="img/slide2.jpg"&gt;&lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">        &lt;div data-src="img/slide3.jpg"&gt;&lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">&lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">&lt;/header&gt;</span></div> <div><span style="background-color: #ff0000;"> <br> </span></div> <div><span style="background-color: #ff0000;">&lt;section id="content" class="main-content"&gt;</span></div> <div><span style="background-color: #ff0000;">&lt;div class="sub-content"&gt;</span></div> <div><span style="background-color: #ff0000;">  &lt;div class="container"&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;div class="row"&gt;</span></div> <div><span style="background-color: #ff0000;">      &lt;div class="span12"&gt;        </span></div> <div><span style="background-color: #ff0000;">        &lt;ul class="thumbnails"&gt;</span></div> <div><span style="background-color: #ff0000;">          &lt;li class="span3"&gt;</span></div> <div><span style="background-color: #ff0000;">            &lt;div class="thumbnail"&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;div class="caption"&gt;</span></div> <div><span style="background-color: #ff0000;">              <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;img src="img/img-1.png" alt=""&gt;</span></div> <div><span style="background-color: #ff0000;">                &lt;h5&gt;Most&lt;/h5&gt;</span></div> <div><span style="background-color: #ff0000;">                &lt;h3&gt;popular&lt;/h3&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;/div&gt;  </span></div> <div><span style="background-color: #ff0000;">              &lt;div class="thumbnail-pad"&gt;</span></div> <div><span style="background-color: #ff0000;">                  &lt;p&gt;Praesent vestibulum molestie lacus. Aenean noy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. &lt;/p&gt;</span></div> <div><span style="background-color: #ff0000;">                  &lt;a href="#" class="btn btn_"&gt;more info&lt;/a&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">            &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">          &lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">          &lt;li class="span3"&gt;</span></div> <div><span style="background-color: #ff0000;">            &lt;div class="thumbnail"&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;div class="caption"&gt;</span></div> <div><span style="background-color: #ff0000;">              <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;img src="img/img-2.png" alt=""&gt;</span></div> <div><span style="background-color: #ff0000;">                &lt;h5&gt;Beauty&lt;/h5&gt;</span></div> <div><span style="background-color: #ff0000;">                &lt;h3&gt;Gifts&lt;/h3&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;/div&gt;  </span></div> <div><span style="background-color: #ff0000;">              &lt;div class="thumbnail-pad"&gt;</span></div> <div><span style="background-color: #ff0000;">                  &lt;p&gt;Praesent vestibulum molestie lacus. Aenean my hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. &lt;/p&gt;</span></div> <div><span style="background-color: #ff0000;">                  &lt;a href="#" class="btn btn_"&gt;more info&lt;/a&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">            &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">          &lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">          &lt;li class="span3"&gt;</span></div> <div><span style="background-color: #ff0000;">            &lt;div class="thumbnail"&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;div class="caption"&gt;</span></div> <div><span style="background-color: #ff0000;">              <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;img src="img/img-3.png" alt=""&gt;</span></div> <div><span style="background-color: #ff0000;">                &lt;h5&gt;Attention&lt;/h5&gt;</span></div> <div><span style="background-color: #ff0000;">                &lt;h3&gt;to Detail&lt;/h3&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;/div&gt;  </span></div> <div><span style="background-color: #ff0000;">              &lt;div class="thumbnail-pad"&gt;</span></div> <div><span style="background-color: #ff0000;">                  &lt;p&gt;Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suipit varius mi. Cum sociis natoque penatibus et.&lt;/p&gt;</span></div> <div><span style="background-color: #ff0000;">                  &lt;a href="#" class="btn btn_"&gt;more info&lt;/a&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">            &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">          &lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">          &lt;li class="span3"&gt;</span></div> <div><span style="background-color: #ff0000;">            &lt;div class="thumbnail"&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;div class="caption"&gt;</span></div> <div><span style="background-color: #ff0000;">              <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;img src="img/img-4.png" alt=""&gt;</span></div> <div><span style="background-color: #ff0000;">                &lt;h5&gt;Award-Winning&lt;/h5&gt;</span></div> <div><span style="background-color: #ff0000;">                &lt;h3&gt;Fragrances&lt;/h3&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;div class="thumbnail-pad"&gt;  </span></div> <div><span style="background-color: #ff0000;">                  &lt;p&gt;Nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis.&lt;/p&gt;</span></div> <div><span style="background-color: #ff0000;">                  &lt;a href="#" class="btn btn_"&gt;more info&lt;/a&gt;</span></div> <div><span style="background-color: #ff0000;">              &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">            &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">          &lt;/li&gt;</span></div> <div><span style="background-color: #ff0000;">        &lt;/ul&gt;</span></div> <div><span style="background-color: #ff0000;">      &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;/div&gt;</span></div> <div><span style="background-color: #ff0000;">    &lt;div class="row"&gt;</span></div> <div><span style="background-color: #00ff00;">    <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;div class="span8"&gt;</span></div> <div><span style="background-color: #00ff00;">        <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;div class="clearfix cols-1"&gt;</span></div> <div><span style="background-color: #00ff00;">                &lt;div class="span4 left-0"&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;h4 class="indent-2"&gt;Welcome&lt;/h4&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;p class="lead"&gt;Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. &lt;/p&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;figure class="img-indent"&gt;&lt;img src="img/page1-img1.jpg" alt="" class="img-radius"&gt;&lt;/figure&gt;</span></div> <div><span style="background-color: #00ff00;">                    Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla dui. Fusce feugiat malesuada odio. Morbi nunc odio, gravida at, cursus nec, luctus a, lorem. </span></div> <div><span style="background-color: #00ff00;">                &lt;/div&gt;</span></div> <div><span style="background-color: #00ff00;">                &lt;div class="span4"&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;h4 class="indent-2"&gt;What We Do&lt;/h4&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;p class="lead"&gt;Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. &lt;/p&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;figure class="img-indent"&gt;&lt;img src="img/page1-img2.jpg" alt="" class="img-radius"&gt;&lt;/figure&gt;</span></div> <div><span style="background-color: #00ff00;">                    Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla dui. Fusce feugiat malesuada odio. Morbi nunc odio, gravida at, cursus nec, luctus a, lorem. </span></div> <div><span style="background-color: #00ff00;">                &lt;/div&gt;</span></div> <div><span style="background-color: #00ff00;">            &lt;/div&gt;</span></div> <div><span style="background-color: #00ff00;">            &lt;h4 class="indent-1"&gt;our Capabilities:&lt;/h4&gt;</span></div> <div><span style="background-color: #00ff00;">            &lt;p class="lead"&gt;Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturien.&lt;/p&gt;</span></div> <div><span style="background-color: #00ff00;">            &lt;div class="lists"&gt;</span></div> <div><span style="background-color: #00ff00;">            <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;div class="span4 left-0"&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;ul class="list"&gt;</span></div> <div><span style="background-color: #00ff00;">                        &lt;li&gt;&lt;a href="#"&gt;Praesent vestibulum molestie lacus aenean&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #00ff00;">                        &lt;li&gt;&lt;a href="#"&gt;nonummy hendrerit mauris&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #00ff00;">                        &lt;li&gt;&lt;a href="#"&gt;Phasellus porta fusce suscipit varius mi&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #00ff00;">                        &lt;li&gt;&lt;a href="#"&gt;Cum sociis natoque penatibus et magnis dis&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;/ul&gt;</span></div> <div><span style="background-color: #00ff00;">                &lt;/div&gt;</span></div> <div><span style="background-color: #00ff00;">                &lt;div class="span4"&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;ul class="list"&gt;</span></div> <div><span style="background-color: #00ff00;">                        &lt;li&gt;&lt;a href="#"&gt;Praesent vestibulum molestie lacus aenean&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #00ff00;">                        &lt;li&gt;&lt;a href="#"&gt;nonummy hendrerit mauris&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #00ff00;">                        &lt;li&gt;&lt;a href="#"&gt;Phasellus porta fusce suscipit varius mi&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #00ff00;">                        &lt;li&gt;&lt;a href="#"&gt;Cum sociis natoque penatibus et magnis dis&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;/ul&gt;</span></div> <div><span style="background-color: #00ff00;">                &lt;/div&gt;</span></div> <div><span style="background-color: #00ff00;">            &lt;/div&gt;</span></div> <div><span style="background-color: #00ff00;">            &lt;a href="#" class="link"&gt;More Info&lt;/a&gt;</span></div> <div><span style="background-color: #00ff00;">        &lt;/div&gt;    </span></div> <div><span style="background-color: #00ff00;">        &lt;div class="span4"&gt;</span></div> <div><span style="background-color: #00ff00;">        <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;h4 class="indent-2"&gt;Latest News:&lt;/h4&gt;</span></div> <div><span style="background-color: #00ff00;">            &lt;ul class="list-news"&gt;</span></div> <div><span style="background-color: #00ff00;">            <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;li&gt;</span></div> <div><span style="background-color: #00ff00;">                <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;a href="#" class="btn btn_"&gt;Apr 21, 2012&lt;/a&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;p class="text-info"&gt;Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.&lt;/p&gt;</span></div> <div><span style="background-color: #00ff00;">                    Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. &lt;a href="#" class="underline"&gt;&gt;&gt;&lt;/a&gt;</span></div> <div><span style="background-color: #00ff00;">                &lt;/li&gt;</span></div> <div><span style="background-color: #00ff00;">                &lt;li&gt;</span></div> <div><span style="background-color: #00ff00;">                <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;a href="#" class="btn btn_"&gt;Apr 21, 2012&lt;/a&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;p class="text-info"&gt;Aenean nonummy hendrerit mauris&lt;/p&gt;</span></div> <div><span style="background-color: #00ff00;">                    Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes.  &lt;a href="#" class="underline"&gt;&gt;&gt;&lt;/a&gt;</span></div> <div><span style="background-color: #00ff00;">                &lt;/li&gt;</span></div> <div><span style="background-color: #00ff00;">                &lt;li&gt;</span></div> <div><span style="background-color: #00ff00;">                <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;a href="#" class="btn btn_"&gt;Apr 21, 2012&lt;/a&gt;</span></div> <div><span style="background-color: #00ff00;">                    &lt;p class="text-info"&gt;Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturien.&lt;/p&gt;</span></div> <div><span style="background-color: #00ff00;">                    Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes.  &lt;a href="#" class="underline"&gt;&gt;&gt;&lt;/a&gt;</span></div> <div><span style="background-color: #00ff00;">                &lt;/li&gt;</span></div> <div><span style="background-color: #00ff00;">            &lt;/ul&gt;</span></div> <div><span style="background-color: #00ff00;">            &lt;h4 class="indent-1"&gt;testimonials:&lt;/h4&gt;</span></div> <div><span style="background-color: #00ff00;"><span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;p class="p1"&gt;Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi, nascetur ridiculus mus. Nulla dui. Fusce feugiat malesuada.”&lt;/p&gt;</span></div> <div><span style="background-color: #00ff00;">            &lt;span class="clr"&gt;&lt;strong&gt;Mark Priston&lt;/strong&gt;, &lt;a href="#" class="link-2"&gt;demolink.org&lt;/a&gt;&lt;/span&gt;</span></div> <div><span style="background-color: #00ff00;">        &lt;/div&gt;</span></div> <div><span style="background-color: #ffff00;">    &lt;/div&gt;        </span></div> <div><span style="background-color: #ffff00;">  &lt;/div&gt;</span></div> <div><span style="background-color: #ffff00;">&lt;/div&gt;  </span></div> <div><span style="background-color: #ffff00;">&lt;/section&gt;</span></div> <div><span style="background-color: #ffff00;">&lt;footer&gt;</span></div> <div><span style="background-color: #ffff00;">   &lt;div class="container"&gt;</span></div> <div><span style="background-color: #ffff00;">    &lt;div class="row"&gt;</span></div> <div><span style="background-color: #ffff00;">      &lt;div class="span4 float2"&gt;</span></div> <div><span style="background-color: #ffff00;">        &lt;form id="newsletter" method="post" &gt;</span></div> <div><span style="background-color: #ffff00;">            &lt;label&gt;Newsletter&lt;/label&gt;</span></div> <div><span style="background-color: #ffff00;">            &lt;div class="clearfix"&gt;</span></div> <div><span style="background-color: #ffff00;">                &lt;input type="text" onFocus="if(this.value =='Enter e-mail here' ) this.value=''" onBlur="if(this.value=='') this.value='Enter e-mail here'" value="Enter e-mail here" &gt;</span></div> <div><span style="background-color: #ffff00;">                &lt;a href="#" onClick="document.getElementById('newsletter').submit()" class="btn btn_"&gt;subscribe&lt;/a&gt;</span></div> <div><span style="background-color: #ffff00;">            &lt;/div&gt;</span></div> <div><span style="background-color: #ffff00;">        &lt;/form&gt;</span></div> <div><span style="background-color: #ffff00;">    &lt;/div&gt;</span></div> <div><span style="background-color: #ffff00;">    &lt;div class="span8 float"&gt;</span></div> <div><span style="background-color: #ffff00;">      <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;ul class="footer-menu"&gt;</span></div> <div><span style="background-color: #ffff00;">        <span class="Apple-tab-span" style="white-space: pre;"> </span>&lt;li&gt;&lt;a href="index.html" class="current"&gt;Home Page&lt;/a&gt;|&lt;/li&gt;</span></div> <div><span style="background-color: #ffff00;">            &lt;li&gt;&lt;a href="index-1.html"&gt;about&lt;/a&gt;|&lt;/li&gt;</span></div> <div><span style="background-color: #ffff00;">            &lt;li&gt;&lt;a href="index-2.html"&gt;Services&lt;/a&gt;|&lt;/li&gt;</span></div> <div><span style="background-color: #ffff00;">            &lt;li&gt;&lt;a href="index-3.html"&gt;collections&lt;/a&gt;|&lt;/li&gt;</span></div> <div><span style="background-color: #ffff00;">            &lt;li&gt;&lt;a href="index-4.html"&gt;styles&lt;/a&gt;|&lt;/li&gt;</span></div> <div><span style="background-color: #ffff00;">            &lt;li&gt;&lt;a href="index-5.html"&gt;Contacts&lt;/a&gt;&lt;/li&gt;</span></div> <div><span style="background-color: #ffff00;">        &lt;/ul&gt;</span></div> <div><span style="background-color: #ffff00;">      <span class="Apple-tab-span" style="white-space: pre;"> </span>Stylish   ©  2013  |   <a href="<a href=" http:="" кофедизайн.рф="">Разработан"&gt;http://кофедизайн.рф/"&gt;Разработан</a>о с удовольствием </span></div> <div><span style="background-color: #ffff00;">      &lt;/div&gt;</span></div> <div><span style="background-color: #ffff00;">    &lt;/div&gt;</span></div> <div><span style="background-color: #ffff00;">   &lt;/div&gt;</span></div> <div><span style="background-color: #ffff00;">&lt;/footer&gt;</span></div> <div><span style="background-color: #ffff00;">&lt;script type="text/javascript" src="js/bootstrap.js"&gt;&lt;/script&gt;</span></div> <div><span style="background-color: #ffff00;">&lt;/body&gt;</span></div> <div><span style="background-color: #ffff00;">&lt;/html&gt;</span></div> </div> </div> </div> </div> <p style="text-align: justify;">Цветами отмечены участки кода, которые относятся к разным блокам в соответствии с разметкой, проведённой в <a href="/information/integratsiya_adaptivnogo_bootstrap_v_1C_bitrix_po_shagam_urok_0/" title="Интеграция адаптивного Bootstrap шаблона сайта в 1С-Битрикс по шагам">УРОКЕ 0</a>:<i> </i></p> <ul> <li><b style="background-color: #ff0000;">Красный</b> - header.php (или в шаблон сайта ВЫШЕ #WORK_AREA#</li> <li><b style="background-color: #ffff00;">Жёлтый</b> - footer.php (или в шаблон сайта НИЖЕ #WORKAREA#)</li> <li><b style="background-color: #00ff00;">Зелёный</b> - тело страницы</li> </ul> <p style="text-align: justify;"><b> Мы рекомендуем не брать код напрямую из урока, а самостоятельно найти границы блоков (например использую редактор кода notepade++ с подсветкой синтаксиса)</b>. Во-первых, это важная часть обучения процессу интеграции дизайна - правильно определить где заканчивается какой блок. А во-вторых, здесь могла быть сбита табуляция, так что код может быть менее читабелен, чем в оригинале.</p> <p style="text-align: justify;"> <i>Как можно заметить, мнение автора статьи о разбитии вёрстки на рабочую область подвал и шапку не совпадает с мнением автора шаблона. </i> </p> <p style="text-align: justify;"> Образцы созданных файлов: </p> <p style="text-align: justify;"> </p> <ul> <li><noindex><a href="/upload/medialibrary/f1e/f1e8eedb3243e2c306bb908ef785a723" title="header.php - 1" rel="nofollow">/bitrix/templates/stylish/header.php</a></noindex></li> <li><noindex><a href="/upload/medialibrary/68c/68cf2e56387f6cb1abe278502a886bf9" title="footer.php - 1" rel="nofollow">/bitrix/templates/stylish/footer.php</a></noindex></li> <li><noindex><a href="/upload/medialibrary/8d1/8d1191cb77a11f6ff5aaa830dd547cd5" title="index.php - 1" rel="nofollow">/index.php</a></noindex> (зелёный код добавляем в содержимое страницы в корне сайта)</li> </ul> <p></p> <p style="text-align: justify;">Теперь применим наш статический шаблон к имеющемуся сайта (состоящему пока из 1 страницы), для этого в административном разделе выбираем:</p> <p style="text-align: justify;">Настройки → Настройки продукта → Сайты → Сайты</p> <p style="text-align: justify;">Нажмём на ID интересующего нас сайта (в данном случае он один, поскольку мы используем чистую систему, однако у вас может быть список):</p> <p style="text-align: justify;"><a href="/upload/medialibrary/7f7/7f7945b43796ba081688b993eae74b49.PNG" target="_blank"><img title="Настройки сайта" src="/upload/medialibrary/7f7/7f7945b43796ba081688b993eae74b49.PNG" alt="Настройки сайта" border="0" height="490" hspace="5" vspace="5" width="700"></a></p> <p style="text-align: justify;">На странице редактирования настроек сайта нас интересует самый нижний блок - "Шаблоны". Здесь мы выберем шаблон и установим условия для его использования на сайте. Поскольку у нас всего 1 шаблон и он используется для всего сайта, то мы не будем использовать условия и оставим индекс сортировки по-умолчанию:</p> <p style="text-align: justify;"><img title="Выбор шаблона в настройках сайта" src="/upload/medialibrary/4d4/4d49b3ae55d3be01942945ef6b884ea2.PNG" alt="Выбор шаблона в настройках сайта" border="0" height="619" hspace="5" vspace="5" width="700"></p> <p style="text-align: justify;"><i>Если вы интегрируете шаблон на уже работающем сайте (или делаете не 1й шаблон в рамках проекта), то имеет смысл ставить для него низкий индекс сортировки и/или правило, применяющее шаблон только к конкретной папке, чтобы ваше правило с не до конца готовым шаблоном не сказалось на других разделах.</i></p> <p style="text-align: justify;"> Если сейчас мы посмотрим страницу в публичной части, то увидим, что она представляет из себя текст без разметки, стилей и картинок, поскольку пути к ним в статической вёрстке отличаются от тех, что должны быть в структуре 1С-Битрикс. Для того, чтобы это исправить необходимо: </p> <p style="text-align: justify;"> </p> <ul> <li> <p>Добавить константу &lt;?=SITE_TEMPLATE_PATH?&gt; к пути всех статических файлов (в частности изображений), которая определяет путь к шаблону сайта относительно пути сайта.  </p> <p>Например, заменив &lt;img src="img/img-4.png" alt=""&gt; на &lt;img src="&lt;?=SITE_TEMPLATE_PATH?&gt;/img/img-4.png" alt=""&gt;</p> <p>Пренебрежём пока тем, что некоторые картинки, такие как баннеры в слайдере следует хранить не в шаблоне - мы будем облегчать его постепенно, перенося картинки в шаблоны компонентов или контент по мере необходимости (в идеале в общей папке в шаблоне страницы не должно остаться картинок не универсального значения, чтобы в дальнейшем было проще работать). </p> </li> <li> <p>Добавим подключение пролога и языковых файлов в header.php начале шаблона (1-й строкой):</p> <table cellpadding="5" cellspacing="0" border="1"> <tbody> <tr><td> <div>&lt;?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?&gt;</div> <div>&lt;?</div> <div>IncludeTemplateLangFile(__FILE__);</div> <div>?&gt; </div> </td></tr> </tbody> </table> </li> <li> <p>Добавим языковых файлов в footer.php (1-й строкой в файле или сразу после #WORK_AREA# в шаблоне):</p> <table cellpadding="5" cellspacing="0" border="1"> <tbody> <tr><td> <div>&lt;?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();</div> <div>IncludeTemplateLangFile(__FILE__);</div> <div>?&gt;</div> </td></tr> </tbody> </table> </li> <li> <p>Вместо статического значения &lt;html lang="en"&gt; укажем константу, определяющую язык сайта в 1С-Битрикс:</p> <table cellpadding="5" cellspacing="0" border="1"> <tbody> <tr><td>&lt;html lang="&lt;?=LANGUAGE_ID;?&gt;-&lt;?=strtoupper(LANGUAGE_ID);?&gt;"&gt;</td></tr> </tbody> </table> </li> <li> <p>Внутри тега &lt;head&gt; вместо &lt;title&gt;Home&lt;/title&gt; динамически генерирующийся заголовок:</p> <table cellpadding="5" cellspacing="0" border="1"> <tbody> <tr><td>&lt;title&gt;&lt;?$APPLICATION-&gt;ShowTitle()?&gt;&lt;/title&gt;</td></tr> </tbody> </table> </li> <li> <p>Добавим служебную функцию &lt;?$APPLICATION-&gt;ShowHead();?&gt; (она заменит нам множество других статических вызовов.</p> </li> <li> <p>Удалим &lt;meta charset="utf-8"&gt; - реальную информацию о кодировке (из настроек сайта) на страницу выведет предыдущая функция.</p> </li> <li> <p>Установим динамическое подключение стилей с помощью функции SetAdditionalCSS (это нужно для того, чтобы одни и те же стили не подключались дважды, а так же для того, чтобы 1С-Битрикс проверял изменение в стилях и сообщал об этом браузеру пользователя при повторном заходе на сайт) - $APPLICATION-&gt;SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/НАЗВАНИЕ_СТИЛЯ.css');. Сгруппируем все стили вместе с ShowHead для облегчения процесса редактирования в будущем:</p> <table cellpadding="5" cellspacing="0" border="1"> <tbody> <tr><td>&lt;? <br> $APPLICATION-&gt;ShowHead(); <br> <br> $APPLICATION-&gt;SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/bootstrap.css'); <br> $APPLICATION-&gt;SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/responsive.css'); <br> $APPLICATION-&gt;SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/camera.css'); <br> $APPLICATION-&gt;SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/style.css'); <br> $APPLICATION-&gt;SetAdditionalCSS('<a href="http://fonts.googleapis.com/css?family=Open+Sans:400,600,700')">http://fonts.googleapis.com/css?family=Open+Sans:400,600,700')</a>; <br> $APPLICATION-&gt;SetAdditionalCSS('<a href="http://fonts.googleapis.com/css?family=Open+Sans:400')">http://fonts.googleapis.com/css?family=Open+Sans:400')</a>; <br> $APPLICATION-&gt;SetAdditionalCSS('<a href="http://fonts.googleapis.com/css?family=Open+Sans:600')">http://fonts.googleapis.com/css?family=Open+Sans:600')</a>; <br> $APPLICATION-&gt;SetAdditionalCSS('<a href="http://fonts.googleapis.com/css?family=Open+Sans:700')">http://fonts.googleapis.com/css?family=Open+Sans:700')</a>; <br> ?&gt;</td></tr> </tbody> </table> <p>Поскольку данная функция не поддерживает параметр media, перенесём и его значение из старых статических ссылок в текст CSS файлов. </p> <p> Например, для /css/bootstrap.css первой строкой добавим: </p><table cellpadding="5" cellspacing="0" border="1"> <tbody> <tr><td>@media screen</td></tr> </tbody> </table> <p></p> </li> <li> <p>Установим динамическое подключение JS библиотек аналогично стилям (обратим внимание читателя, что проблема дублирования подключения библиотек JS важнее, поскольку может приводить к ошибкам работы функционала). Воспользуемся функцией AddHeadScript - $APPLICATION-&gt;AddHeadScript(SITE_TEMPLATE_PATH."/js/НАЗВАНИЕ_БИБЛИОТЕКИ.js");. Сгруппируем их так же вместе с CSS и ShowHead: </p><table cellpadding="5" cellspacing="0" border="1"> <tbody> <tr><td>&lt;? <br> $APPLICATION-&gt;ShowHead(); <br> <br> $APPLICATION-&gt;SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/bootstrap.css'); <br> $APPLICATION-&gt;SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/responsive.css'); <br> $APPLICATION-&gt;SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/camera.css'); <br> $APPLICATION-&gt;SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/style.css'); <br> $APPLICATION-&gt;SetAdditionalCSS('<a href="http://fonts.googleapis.com/css?family=Open+Sans:400,600,700')">http://fonts.googleapis.com/css?family=Open+Sans:400,600,700')</a>; <br> $APPLICATION-&gt;SetAdditionalCSS('<a href="http://fonts.googleapis.com/css?family=Open+Sans:400')">http://fonts.googleapis.com/css?family=Open+Sans:400')</a>; <br> $APPLICATION-&gt;SetAdditionalCSS('<a href="http://fonts.googleapis.com/css?family=Open+Sans:600')">http://fonts.googleapis.com/css?family=Open+Sans:600')</a>; <br> $APPLICATION-&gt;SetAdditionalCSS('<a href="http://fonts.googleapis.com/css?family=Open+Sans:700')">http://fonts.googleapis.com/css?family=Open+Sans:700')</a>; <br> <br> $APPLICATION-&gt;AddHeadScript(SITE_TEMPLATE_PATH."/js/jquery.js"); <br> $APPLICATION-&gt;AddHeadScript(SITE_TEMPLATE_PATH."/js/jquery.easing.1.3.js"); <br> $APPLICATION-&gt;AddHeadScript(SITE_TEMPLATE_PATH."/js/camera.js"); <br> $APPLICATION-&gt;AddHeadScript(SITE_TEMPLATE_PATH."/js/jquery.ui.totop.js"); <br> ?&gt;</td></tr> </tbody> </table> <p></p> <table cellpadding="5" cellspacing="0" border="1"> <tbody> <tr><td> <p><b>ВАЖНО</b>. Мы оставили несколько библиотек подключенными по обычному сценарию. </p> <p>JS, подключаемые для устаревших браузеров (поскольку для них стоит условие подключения: </p><table cellpadding="5" cellspacing="0" border="1"> <tbody> <tr><td>&lt;!--[if lt IE 8]&gt; <br> <div style="text-align:center"><a href="<a href=" http:="" www.microsoft.com="" windows="" internet-explorer="">http://www.microsoft.com/windows/internet-explorer/default.aspx?ocid=ie6_countdown_bannercode"</a>&gt;<img http:="" www.theie6countdown.com="" img="" alt="" src="<a href="><a href="http://www.theie6countdown.com/img/upgrade.jpg" border="0" alt="">http://www.theie6countdown.com/img/upgrade.jpg"border="0"alt=""/</a>&gt;</div> <br> &lt;![endif]--&gt; <br> <br> &lt;!--[if (gt IE 9)|!(IE)]&gt;&lt;!--&gt; <br> &lt;script type="text/javascript" src="&lt;?=SITE_TEMPLATE_PATH?&gt;/js/jquery.mobile.customized.min.js"&gt;&lt;/script&gt; <br> &lt;!--&lt;![endif]--&gt; <br> &lt;!--[if lt IE 9]&gt; <br> <br> &lt;link rel="stylesheet" href="&lt;?=SITE_TEMPLATE_PATH?&gt;/css/docs.css" type="text/css" media="screen"&gt; <br> &lt;link rel="stylesheet" href="&lt;?=SITE_TEMPLATE_PATH?&gt;/css/ie.css" type="text/css" media="screen"&gt; <br> &lt;![endif]--&gt;</td></tr> </tbody> </table> <p></p> <p>JS, подключаемые в конце страницы, поскольку эти библиотеки должны подключаться после сборки всей страницы, а не в шапке, как все остальные: </p><table cellpadding="5" cellspacing="0" border="1"> <tbody> <tr><td>&lt;script type="text/javascript" src="&lt;?=SITE_TEMPLATE_PATH?&gt;/js/bootstrap.js"&gt;&lt;/script&gt;<br></td></tr> </tbody> </table> <p></p> <p>Так же мы добавили подключение ещё одного JS, которого раньше не было в HTML коде: </p><table cellpadding="5" cellspacing="0" border="1"> <tbody> <tr><td>&lt;script type="text/javascript" src="&lt;?=SITE_TEMPLATE_PATH?&gt;/js/superfish.js"&gt;&lt;/script&gt;</td></tr> </tbody> </table> <p></p> <p>Это библиотека, отвечающая за раскрытие выпадающего меню. Она вызывается в bootstrap.js, однако автор вёрстки сделал её подключение зависящим от местонахождения страницы, что приводит к ошибке в случае динамического шаблона (как у нас). Поэтому мы вынесли подключение в шаблон. </p> <p>Важно не забыть добавить при их подключении константу &lt;?=SITE_TEMPLATE_PATH?&gt;, как и для картинок.</p> </td></tr> </tbody> </table> </li> <li> <p>Добавляем константу &lt;?$APPLICATION-&gt;ShowPanel();?&gt; после открытия &lt;body&gt; для вывода панели инструментов в публичной части сайта (для пользователей обладающих соответствующим административным доступом). </p> </li> <li> <p> Удаляем строки: </p><table cellpadding="5" cellspacing="0" border="1"> <tbody> <tr><td>&lt;meta name="description" content="Your description"&gt; <br> &lt;meta name="keywords" content="Your keywords"&gt;</td></tr> </tbody> </table> <p></p> <p><i> Их динамические значения уже выводятся с помощью $APPLICATION-&gt;ShowHead();</i></p> </li> <li> <p>Удаляем &lt;meta name="author" content="Your name"&gt; - в будущих уроках мы реализуем её вывод программно. </p> </li> <li> <p>Опционально размещаем файл screen.gif в корне шаблона - он будет использоваться для иллюстрации шаблона в административном разделе и его наличие не обязательно. Файл может быть размещён в натуральную величину - для списка система автоматически сгенерирует миниатюру. </p> </li> </ul> <p></p> <p style="text-align: justify;"> <br> </p> <h2>В заключении урока 1</h2> <p style="text-align: justify;"> Получившийся статический шаблон 1С-Битрикс и статичную же страницу Index.php для корня сайта вы можете скачать в репозитории <noindex><a href="https://github.com/lexnekr/bitrixtemplate_stylish/tree/82d0bb8195bb021409745280e56a42ac684eed4f" target="_blank" rel="nofollow">на GitHub</a></noindex>. На этом урок 1 закончен - мы получили полноценный (хотя и статичный) шаблон для 1С-Битрикс на основе HTML шаблона BootStrap. Теперь на его основе можно создать сайт. </p> <p style="text-align: justify;">В последующих уроках мы последовательно разберём перевод статичного контента данного шаблона в формат компонентов 1С-Битрикс, а так же частично переработаем структуру стилей для более удобной работы редакторов.</p> <div style="text-align: right;"><a href="http://plus.google.com/+АлексейЗадойный?rel=author" target="_blank">Задойный А.В.</a></div><br>

Возврат к списку

Яндекс.Метрика